<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>需求工程 - Even - A super concise theme for Hugo</title>
  <meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>

<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />

<meta name="theme-color" content="#f8f5ec" />
<meta name="msapplication-navbutton-color" content="#f8f5ec">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="#f8f5ec">


<meta name="author" content="olOwOlo" /><meta name="description" content="名词解释 需求工程：需求工程是软件工程的一个分支，它关注于软件系统所应予实现的现实世界目标、软件系统的功能和软件系统应当遵守的约束，同时它也关" /><meta name="keywords" content="Hugo, theme, even" />






<meta name="generator" content="Hugo 0.83.1 with theme even" />


<link rel="canonical" href="https://xiongshou.github.io/post/%E9%9C%80%E6%B1%82%E5%B7%A5%E7%A8%8B/" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">



<link href="/sass/main.min.f92fd13721ddf72129410fd8250e73152cc6f2438082b6c0208dc24ee7c13fc4.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.1.20/dist/jquery.fancybox.min.css" integrity="sha256-7TyXnr2YU040zfSP+rEcz29ggW4j56/ujTPwjMzyqFY=" crossorigin="anonymous">


<meta property="og:title" content="需求工程" />
<meta property="og:description" content="名词解释 需求工程：需求工程是软件工程的一个分支，它关注于软件系统所应予实现的现实世界目标、软件系统的功能和软件系统应当遵守的约束，同时它也关" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://xiongshou.github.io/post/%E9%9C%80%E6%B1%82%E5%B7%A5%E7%A8%8B/" /><meta property="article:section" content="post" />
<meta property="article:published_time" content="2021-06-01T20:16:50&#43;09:00" />
<meta property="article:modified_time" content="2021-06-01T20:16:50&#43;09:00" />

<meta itemprop="name" content="需求工程">
<meta itemprop="description" content="名词解释 需求工程：需求工程是软件工程的一个分支，它关注于软件系统所应予实现的现实世界目标、软件系统的功能和软件系统应当遵守的约束，同时它也关"><meta itemprop="datePublished" content="2021-06-01T20:16:50&#43;09:00" />
<meta itemprop="dateModified" content="2021-06-01T20:16:50&#43;09:00" />
<meta itemprop="wordCount" content="12995">
<meta itemprop="keywords" content="大学课程," /><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="需求工程"/>
<meta name="twitter:description" content="名词解释 需求工程：需求工程是软件工程的一个分支，它关注于软件系统所应予实现的现实世界目标、软件系统的功能和软件系统应当遵守的约束，同时它也关"/>

<!--[if lte IE 9]>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/classlist/1.1.20170427/classList.min.js"></script>
<![endif]-->

<!--[if lt IE 9]>
  <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]-->

</head>
<body>
  <div id="mobile-navbar" class="mobile-navbar">
  <div class="mobile-header-logo">
    <a href="/" class="logo">Even</a>
  </div>
  <div class="mobile-navbar-icon">
    <span></span>
    <span></span>
    <span></span>
  </div>
</div>
<nav id="mobile-menu" class="mobile-menu slideout-menu">
  <ul class="mobile-menu-list">
    <a href="/">
        <li class="mobile-menu-item">Home</li>
      </a><a href="/post/">
        <li class="mobile-menu-item">Archives</li>
      </a><a href="/tags/">
        <li class="mobile-menu-item">Tags</li>
      </a><a href="/categories/">
        <li class="mobile-menu-item">Categories</li>
      </a><a href="/about/">
        <li class="mobile-menu-item">About</li>
      </a>
  </ul>

  


</nav>

  <div class="container" id="mobile-panel">
    <header id="header" class="header">
        <div class="logo-wrapper">
  <a href="/" class="logo">Even</a>
</div>





<nav class="site-navbar">
  <ul id="menu" class="menu">
    <li class="menu-item">
        <a class="menu-item-link" href="/">Home</a>
      </li><li class="menu-item">
        <a class="menu-item-link" href="/post/">Archives</a>
      </li><li class="menu-item">
        <a class="menu-item-link" href="/tags/">Tags</a>
      </li><li class="menu-item">
        <a class="menu-item-link" href="/categories/">Categories</a>
      </li><li class="menu-item">
        <a class="menu-item-link" href="/about/">About</a>
      </li>
  </ul>
</nav>

    </header>

    <main id="main" class="main">
      <div class="content-wrapper">
        <div id="content" class="content">
          <article class="post">
    
    <header class="post-header">
      <h1 class="post-title">需求工程</h1>

      <div class="post-meta">
        <span class="post-time"> 2021-06-01 </span>
        <div class="post-category">
            <a href="/categories/%E5%A4%A7%E5%AD%A6%E8%AF%BE%E7%A8%8B/"> 大学课程 </a>
            </div>
        
      </div>
    </header>

    <div class="post-toc" id="post-toc">
  <h2 class="post-toc-title">Contents</h2>
  <div class="post-toc-content always-active">
    <nav id="TableOfContents">
  <ul>
    <li>
      <ul>
        <li><a href="#名词解释">名词解释</a></li>
        <li><a href="#问答题">问答题</a>
          <ul>
            <li><a href="#简述需求工程的主要任务">简述需求工程的主要任务。</a></li>
            <li><a href="#简述常见的需求定义错误">简述常见的需求定义错误。</a></li>
            <li><a href="#简要说明需求获取活动的过程">简要说明需求获取活动的过程</a></li>
            <li><a href="#简述涉众识别的基本过程">简述涉众识别的基本过程。</a></li>
            <li><a href="#试比较面谈问题组织的三种结构">试比较面谈问题组织的三种结构。</a></li>
            <li><a href="#简述软件开发中为何使用原型工具以及使用的好处">简述软件开发中为何使用原型工具以及使用的好处。</a></li>
            <li><a href="#试说明在哪些情景下原型法可以帮助需求工程师及早解决需求的不确定性">试说明在哪些情景下原型法可以帮助需求工程师及早解决需求的不确定性。</a></li>
            <li><a href="#试比较原型开发方法的三种类型">试比较原型开发方法的三种类型</a></li>
            <li><a href="#试述在需求获取中使用原型方法的主要步骤">试述在需求获取中使用原型方法的主要步骤。</a></li>
            <li><a href="#简述使用原型方法的主要风险">简述使用原型方法的主要风险</a></li>
            <li><a href="#简述场景应用和处理生命周期的-5-种情况">简述场景应用和处理生命周期的 5 种情况。</a></li>
            <li><a href="#简要说明结构化分析方法的局限性">简要说明结构化分析方法的局限性。</a></li>
            <li><a href="#请说明为何要确定需求的优先级">请说明为何要确定需求的优先级。</a></li>
            <li><a href="#请说明需求分析人员在需求协商当中应该予以确保的三个原则">请说明需求分析人员在需求协商当中应该予以确保的三个原则。</a></li>
            <li><a href="#简述使用-dfd-描述系统过程模型是必须遵守哪些规则">简述使用 DFD 描述系统过程模型是必须遵守哪些规则。</a></li>
            <li><a href="#请说明-dfd-层次结构的建立的主要步骤">请说明 DFD 层次结构的建立的主要步骤</a></li>
            <li><a href="#请说明-dfd-图质量评判的准则是什么">请说明 DFD 图质量评判的准则是什么？</a></li>
            <li><a href="#请说明如何快速有效地判定一个-dfd-图是否为原始-dfd-图">请说明如何快速有效地判定一个 DFD 图是否为原始 DFD 图？</a></li>
            <li><a href="#请说明如何进行-dfd-的验证">请说明如何进行 DFD 的验证？</a></li>
            <li><a href="#简述-erd-的创建步骤">简述 ERD 的创建步骤。</a></li>
            <li><a href="#请说明为什么要编写需求规格说明文档">请说明为什么要编写需求规格说明文档？</a></li>
            <li><a href="#试比较编写需求规格说明文档所使用的三种语言">试比较编写需求规格说明文档所使用的三种语言。</a></li>
            <li><a href="#简述评审的过程并说明何时可以结束评审">简述评审的过程并说明何时可以结束评审？</a></li>
            <li><a href="#简述需求管理的主要作用">简述需求管理的主要作用</a></li>
            <li><a href="#简述需求管理的重要任务">简述需求管理的重要任务</a></li>
            <li><a href="#简述如何进行需求变更控">简述如何进行需求变更控</a></li>
          </ul>
        </li>
        <li><a href="#案例分析题">案例分析题</a>
          <ul>
            <li><a href="#食物订货系统画dfd">食物订货系统画DFD</a></li>
            <li><a href="#投资经理哪里错了">投资经理哪里错了</a></li>
            <li><a href="#新的直接销售和财务处理系统以帮助解决这些问题">新的直接销售和财务处理系统以帮助解决这些问题。</a></li>
            <li><a href="#省略工作陈述的风险是什么你将如何说服主管">省略工作陈述的风险是什么?你将如何说服主管?</a></li>
            <li><a href="#银行遇到了什么问题设计解决方案">银行遇到了什么问题？设计解决方案</a></li>
            <li><a href="#为下面的每一个涉众描述选项试举一例">为下面的每一个涉众描述选项试举一例，</a></li>
            <li><a href="#怎么选择面谈对象">怎么选择面谈对象</a></li>
          </ul>
        </li>
        <li><a href="#数据列表登记表格">数据列表、登记表格</a></li>
        <li><a href="#回答问题">回答问题</a></li>
        <li><a href="#安排面谈">安排面谈</a></li>
        <li><a href="#面谈遇见的问题">面谈遇见的问题</a></li>
        <li><a href="#面谈需求改变">面谈需求改变</a></li>
        <li><a href="#放弃sdlc">放弃SDLC</a></li>
      </ul>
    </li>
  </ul>
</nav>
  </div>
</div>
    <div class="post-content">
      <h2 id="名词解释">名词解释</h2>
<p>需求工程：需求工程是软件工程的一个分支，它关注于软件系统所应予实现的现实世界目标、软件系统的功能和软件系统应当遵守的约束，同时它也关注以上因素和准确的软件行为规格说明之间的联系，关注以上因素与其随时间或跨产品族而演化之后的相关因素之间的联系。</p>
<p>需求：IEEE 对需求的定义为： ①用户为了解决问题或达到某些目标所需要的条件或能力。 ②系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力。 ③对①或②中的一个条件或一种能力的一种文档化表述。</p>
<p>需求分析：需求分析是利用建模与分析技术对获取笔录的内容进行明确、整理、汇总，建立一个综合考虑问题域特性和需求的系统模型，然后根据系统模型将用户需求转化为系统需求的需求工程活动。</p>
<p>前景、范围、用户参与：前景（<strong>Vision</strong>）：前景描述了产品的作用以及 终的功能，它将所有涉众都统一到一个方向上。   范围（<strong>scope</strong>）：范围指出当前项目是要解决产品长远规划中的哪一部分，范围声明它为项目划定了需求的界线。 用户参与（<strong>User Involvement</strong>）：是以用户为中心的设计方法的核心思想，它要求开发者建立和用户的直接联系，尽早地关注于用户和用户的任务执行过程，通过及时获得用户的反馈来调整软件设计，以完成高质量的设计。另一方面，用户参与就是反对通过和市场人员、管理者等中间媒介来了解用户，因为这些间接的联系会减少或歪曲用户的信息。</p>
<p>各种面谈：结构化面谈：结构化面谈指在面谈的过程中，会见者会完全按照事先的问题和结构来控制面谈。结构化面谈通常被用来获取一些比较确定或者选择空间比较有限的信息，一些统计性倾向信息的获取也可以使用结构化面谈。 半结构化面谈：半结构化面谈指在面谈的过程中，事先需要根据面谈内容准备面谈的问题和面谈结构。但在面谈过程中，会见者可以根据实际情况采取一些灵活的策略。半结构化面谈是在需求获取中应用 多的一种面谈类型，能够处理大部分的需求获取任务。 非结构化面谈：在非结构化面谈的过程中，没有事先预定的议程安排。在比较极端的情况下，会见者甚至会在没有太多事前准备的情况下就直接到访被会见者的工作地，就某个主题开展会谈。</p>
<p>头脑风暴（<strong>Brainstorming</strong>）：是一种特殊的群体面谈方式，它的目的不是发现需求，而是“发明”需求，或者说是发现“潜在”需求。它鼓励参与者在无约束的环境下进行某些问题的自由思考和自由讨论，以产生新的想法。它是需求获取中用于“发明”需求的方法，但它会增加需求的数量。</p>
<p>原型：原型是一个系统，它内化了（Capture）一个更迟系统（Later System）的本质特征。原型系统通常被构造为不完整的系统，以在将来进行改进、补充或者替代。</p>
<p>场景：场景是对系统和环境行为的局部描述，或者说场景是对行为或者事件序列的描述，序列中的行为和事件是系统需要完成的一个任务的特殊示例。 （也可以说，场景是用户为了达到某个目标而和软件系统发生的行为交互序列，是开发者描述软件功能和需求的一种重要形式。）</p>
<p>情境性：情景性是指某些事件只有和它们发生时的具体环境联系起来，才能得到理解，它也是用户无法完成主动信息告知的主要原因。</p>
<p>用例驱动法：用例是一种场景的文本化表现方式，使用叙述性的文本来描述场景。以用例为核心，围绕用例开展活动的软件开发方法被称为用例驱动的软件开发方法。</p>
<p>企业建模：企业建模是以使用产品的组织团体为系统的环境，进行分析。它主要用来理解组织的结构、行为规则、目标、重要成员的任务与职责、操纵的数据等。企业建模利用企业的目标、任务、策略、资源等来刻画组织的行为，并依此来发现组织开发系统的目的，建立系统的业务需求。</p>
<p>过程建模：过程建模是结构化分析方法的典型技术。过程建模将系统看做是过程的集合，其中一些由人来执行，另一些由软件系统来执行。过程建模使用的主要技术有上下文图、数据流图、微规格说明和数据字典等。</p>
<p>上下文图：上下文图是 DFD 高层次的图，是系统功能的 高抽象，它将整个系统看做是一个过程，这个过程实现系统的所有功能。上下文图中存在且仅存在一个过程，表示整个系统。这个单一的过程通常编号为 0。</p>
<p>交互图（<strong>UML</strong> 行为模型）：交互图用于描述在特定上下文环境中一组对象的交互行为，该上下文环境就是被实现用例的某个场景。所以，交互图通常描述的是单个用例的典型场景。交互图中的每一个交互都描述了环境中的对象为了实现某个目标而执行的一系列消息交换。</p>
<p>需求基线：需求基线（Requirements Baseline）就是被明确和固定的需求集合，是项目团队需要在某一特定产品版本中实现的特征和需求集合。</p>
<p>需求跟踪：需求跟踪是一种有效的控制手段，能够在涉众的需求变化中协调系统的演化，保持各项开发工作对需求的一致性。需求跟踪是以软件需求规格说明文档为基线，在向前和向后两个方向上，描述需求以及跟踪需求变化的能力，分为前向跟踪（Pre-Traceabmty）和后向跟踪（Post-Traceability）两种。</p>
<h2 id="问答题">问答题</h2>
<h3 id="简述需求工程的主要任务">简述需求工程的主要任务。</h3>
<p>需求工程有以下三个主要任务： ①需求工程必须说明软件系统将被应用的环境及其目标，说明用来达成这些目标的软件功能，还要说明在设计和实现这些功能时上下文环境对软件完成任务所用方式、方法所施加的限制和约束，也即要同时说明软件需要“做什么”和“为什么”需要做。 ②需求工程必须将目标、功能和约束反映到软件系统中，映射为可行的软件行为，并对软件行为进行准确的规格说明。需求规格说明是需求工程 为重要的成果，是项目规划、设计、测试、用户手册编写等很多后继软件开发阶段的工作基础。  ③现实世界是不断变化的世界，因此需求工程还需要妥善处理目标、功能和约束随着时间的演化情况。同时，为了节省开支和进行需求规格说明的重用，需求工程还需要对目标、功能和约束在软件产品族中的演化和分布情况进行综合考虑与处理。</p>
<h3 id="简述常见的需求定义错误">简述常见的需求定义错误。</h3>
<p>①需求并没有反映用户的真实需要。 实践表明，获取用户的真实需求是非常困难的。②模糊和歧义的需求。 在实践中，人们总是会有意和无意地写出模糊和歧义的需求定义。③信息遗漏。 信息遗漏也是一类常见的问题，包括明显的信息遗漏和不明显的信息遗漏。 ④不必要的需求。 ⑤不切实际的期望。</p>
<h3 id="简要说明需求获取活动的过程">简要说明需求获取活动的过程</h3>
<p>（1）  收集和应用背景资料，建立初始的知识框架。分析涉众的高层次问题，总结出系统的业务需求。 （2）  设计一个高层次的解决方案，并确定解决方案需要具备的系统特性。高层次的解决方案和系统特性定义了项目的前景和范围。 （3）  在项目的业务范围内，需求工程要寻找相关的涉众，并分析和涉众选择。 （4）  对组织里存在大量的表格、单据等与业务相关的硬数据进行采样，它们是需求获取活动中一个重要的信息来源。 （5）  针对某一次具体的需求获取活动，要依据项目范围确定主题和内容，涉众特征和硬数据，从而确定信息来源。获取方法通常只有综合内容、来源和系统环境三者才能做出正确的决定。 在内容、来源和方法都确定之后，需求工程师就可以开展具体的获取活动，获取用户需求和问题域特性。 获取得到的具体信息要记录下来，以获取笔录的形式进行保存。</p>
<h3 id="简述涉众识别的基本过程">简述涉众识别的基本过程。</h3>
<p>①将初始涉众集中起来，进行一次头脑风暴，尽可能地列出一个涉众类别列表。 ②对上一步产生的涉众类别列表进行分析，判断它们和软件系统的相关性，找出其中的键涉众类别。 ③为上一步的各个关键涉众类别选择代表，集中起来进行进一步的头脑风暴，列出新的涉众类别列表。如果新列出的涉众类别列表趋于稳定，就可以结束涉众识别过程。如果新列出的涉众类别列表有了新的发现，就提交新的涉众类别列表，转向第②步。</p>
<h3 id="试比较面谈问题组织的三种结构">试比较面谈问题组织的三种结构。</h3>
<p>（1）  金字塔结构 面谈问题的归纳式组织被看做是金字塔形状。使用这种形式时，会见者以很具体的问题（通常是封闭式的问题）开始，然后逐渐提高问题的开放度，同时允许被会见者用越来越笼统的答案来回答问题。 在主动的情况下，如果会见者认为被会见者需要对话题进行预热，可以采用金字塔结构，通过逐步的引导使被会见者进入讨论。 在被动的情况下，如果会见者发现自己事先对事实的确认存在较大偏差或者被会见者看上去不情愿讨论某个话题，也可以采用金字塔结构。 在某个话题讨论结束的时候，使用金字塔结构的提问顺序也是有用的。 （2）  漏斗结构 在这种结构中，会见者使用演绎的方法，以一般的、开放式的问题开始，然后用封闭式的问题缩小可能的答复。这种面谈结构可看做是漏斗型。 在主动的情况下，漏斗结构为开始一场面谈提供了一种容易而轻松的途径。答复者即使答错了开放式问题，也不会感到压力。 在被动的情况下，当被会见者对话题有情绪，并且需要自由表达这些情绪的时候，需要采用漏斗型提问顺序。或者在会见者事先对事实了解不多时，也应该采用漏斗结构的问题组织方式。   使用漏斗结构的一个好处是：用这种方式组织面谈能得出很多的详细信息，以至于没有必要使用长序列的封闭式问题。   （3）  菱形结构 人们在面谈中常常会将上述两种结构结合起来使用，其中菱形结构就是一种 好的结合结果。这种结构以一种非常明确的方式开始，然后考察一般问题， 后得出一个非常明确的结论。  会见者首先提出一些简单的、封闭式的问题，为面谈过程做好铺垫。在面谈的中间阶段，向被会见者提出明显没有“正确答案”的一般话题的看法。然后，会见者再次限制问题以获得明确的答复，这样就为会见者和被会见者提供了面谈的结束时机。 菱形结构结合了其他两种结构的长处，但是也有缺点，即所花的时间比其他任何一个都长。</p>
<h3 id="简述软件开发中为何使用原型工具以及使用的好处">简述软件开发中为何使用原型工具以及使用的好处。</h3>
<p>因为原型是在 终系统产生之前的一个局部真实表现，所以原型方法可以让人们在系统的开发过程中，就能够对一些具体问题进行基于实物的有效沟通，从而帮助人们尽早解决软件开发过程中存在的各种不确定性。不确定性是指人们已经拥有的知识是不充分的，不足以预测将来的事件发展，或者不足以清晰、准确地描述某个事物。 实践证明，利用原型有如下好处： ①及时、有力地响应用户需求的变化。 ②减少返工。  ③帮助控制不完整需求所带来的风险。 ④可以将一个大的难以处理的开发过程细分成一些更小更容易处理的步骤。  ⑤减少开发成本，提高经济效益。 ⑥增加开发者之间的交流，帮助确定技术解决方案的可行性。 ⑦有效地识别风险和解决风险，帮助进行风险管理。 ⑧提高用户在软件开发中的参与程度。</p>
<h3 id="试说明在哪些情景下原型法可以帮助需求工程师及早解决需求的不确定性">试说明在哪些情景下原型法可以帮助需求工程师及早解决需求的不确定性。</h3>
<p>①产品以前从未存在过，而且难以可视化。这些产品属于创新性产品，它们的基本需求是潜在的，有着很大的不确定性。 ②产品的用户对相关类别的产品没有经验，而且对将要采用的技术也没有经验。此时用户无法明确工作的具体细节，产品的细节需求存在着不确定性。 ③用户进行自己的工作已经有一段时间了，但在完成工作的方式上仍然存在障碍。此时用户无法判断问题的解决方案是否现实可行，所以产品在整体方案的可行性上存在着不确定性。 ④用户在清晰说明他们的需求方面存在困难，例如默认需求或者潜在需求。这些相关的需求是有着不确定性的需求。 ⑤需求工程师在理解用户的需求上存在困难。在澄清和理解之前，这些需求存在着不确定性。 ⑥需求的可行性值得怀疑，即具体需求的可满足性存在着不确定性。</p>
<h3 id="试比较原型开发方法的三种类型">试比较原型开发方法的三种类型</h3>
<p>（1）探索式 探索式原型法是以缺陷需求开始继而不断调整和修正需求的原型开发方式。探索式的原型方法通常要尽可能地调整各种设计选项（例如需求内容、软件化内容以及软件支持方式等），并比较多种设计方案下的用户反馈以得到理想的用户需求。探索式的原型方法能够帮助开发者更深入地了解用户的业务、问题和期望。</p>
<p>（2）实验式 实验式的原型方法初始时拥有清晰的用户需求，但是开发者对这些需求的实现方法、实现效果和可行性没有太大的把握。实验式的原型方法需要首先定义一个对原型的评估方法，确定评估的属性（例如可行性、适用性、效率、吞吐量等），据此评估各种技术方案下的原型，明确需求的可行性和有效的技术实现方案。</p>
<p>（3）演化式 在演化式的原型方法中，原型的开发并不是一个独立的活动，而是整个项目的持续开发过程中的一个部分。原型开发的初始点既有要求原型化的需求，也有项目积累下来的原型资产。积累下的原型资产所没有实现的需求，往往是清晰的需求。在开发原型时，还要能够以一个整体的方式传递给下一个原型开发过程。这个被不断传递和不断增强的原型资产将成为 终的软件系统。通过在持续开发过程中使用原型方法，可以使软件开发过程更好地处理用户需求的不断变动。</p>
<p>在探索式、实验式和演化式这三种原型方法中，前两种方法产生的原型往往是在经历了很多次错误的尝试之后才产生的。这些错误的尝试过程会在 终的原型产品中留下痕迹，原型中的一些代码是在错误的前提（错误的需求、错误的技术方案）下完成的，它们会使原型产品具有很差的质量，所以人们在得到正确的尝试之后往往会抛弃这些原型产品，另起炉灶。为此，探索式和实验式方法产生的原型产品又被称为抛弃式原型（ThrowawayPrototype）。 抛弃式原型的贡献不在于它的代码，而是它所包含的内容，它说明了正确的需求和正确的技术方案。 因为抛弃式原型的代码是要被抛弃的，所以在建立抛弃式原型时，应该尽量花费 小的代价，争取 快的速度。为此，原型的开发者会使用一些简易的开发工具和不成熟的构造技术，忽略或简化一些和原型目标不相关的功能特征。</p>
<h3 id="试述在需求获取中使用原型方法的主要步骤">试述在需求获取中使用原型方法的主要步骤。</h3>
<p>在需求获取中使用原型方法的主要步骤包括： ①确定原型需求。搞清楚为什么要开发原型，拥有的起始点是什么，期望的结束标准是什么? ②原型开发。依据原型的需求特点和开发目的，选择原型的开发方法和构建技术，建立初始原型。 ③原型评估。对上一阶段产生的原型进行评估，根据评估者的反馈判断原型是否满足结束标准。评估者一般是用户和开发者。 ④原型修正。如果已经建立的原型达到了目的，就结束原型方法过程。否则根据评估者反馈的不足进行原型调整，调整完成后准备再次进行原型评估。</p>
<h3 id="简述使用原型方法的主要风险">简述使用原型方法的主要风险</h3>
<p>原型方法的 大优点是能够及早地解决系统开发中的不确定性，从而降低软件项目失败的风险，但原型方法的复杂性使得它在降低风险的同时也引人了新的风险。 （1）  原型方法 大的风险就是涉众看到了一个正在运行的原型，从而得出产品几乎已经完成的结论，从而提出快速交付产品的不当要求。  （2）  原型方法的另一个风险是用户可能会被原型所表现出来的非功能特性遮蔽了眼睛，从而忽略了他们更应该重视的功能特性。 （3）  原型方法的第三个风险是原型方法在澄清需求不确定性的同时也可能会掩盖一些用户的假设，这些假设将会无从发现。，原型的开发者要仔细地分析原型的后，还应该避免对原型开发工作投入太多的工作，使开发团队消耗了过多的时间和过大的成本， 后被迫只能匆匆忙忙实现一个产品，甚至只是交付一个原型。</p>
<h3 id="简述场景应用和处理生命周期的-5-种情况">简述场景应用和处理生命周期的 5 种情况。</h3>
<p>场景的生命周期关注场景的处理和应用，也就是关注场景在整个需求工程中是如何被捕获、修改和演化的。实践中发现的场景应用和处理可以概括为 5 种情况：  ①从当前系统中捕获和建立关于现在的场景，它们描述问题域的状态和问题。 ②在当前的系统中分析问题和期望，捕获、分析和建立关于未来的场景。 ③在当前的系统中分析问题和期望，捕获、分析和建立关于未来的场景，并依据场景对解决方案的描述，建立需求模型。 ④依据已经建立的需求规格说明解释和建立关于未来的场景，然后为场景中描述的解决方案建立需求模型。 ⑤依据需求规格说明所描述的解决方案，建立需求模型，同时建立能够验证解决方案的场景。 后，使用场景来验证需求模型的正确性。</p>
<h3 id="简要说明结构化分析方法的局限性">简要说明结构化分析方法的局限性。</h3>
<p>结构化分析方法也有自身的局限性。 首先，虽然有了功能实体矩阵、实体生命历史和事件实体矩阵等分析技术，但是数据需求和处理需求的联接仍然不是一个容易的工作。 其次，结构化分析向结构化设计的过度(数据流图到结构图)中间有着难以处理的鸿沟。再次，结构化分析过于重视对已有系统的建模，而这常常是难以实现的。</p>
<h3 id="请说明为何要确定需求的优先级">请说明为何要确定需求的优先级。</h3>
<p>作为一项工程，软件开发总是在一定的环境限制下进行的，成本效益比是它成功的一个基本衡量标准。因此，在工程环境下，需求与需求之间并不是同等重要的，一些需求应该优于另一些需求得到更多的实现保证，这就是要确定需求优先级的原因。情况有： ①一个项目的资源（时间、人力、成本等）有限，无法满足用户的所有需求。此时项目管理者就需要确定一种 佳方案，在既定的成本下取得 大的效益。 ②项目采用了分阶段的开发方式。为了 大化地体现项目的成本效益，项目应该在第一阶段就交付用户 重要和 紧急的需求，并将用户 不重要和 不紧急的需求放在开发的后一个阶段。 ③在项目的开始阶段，并不能明确所有的用户需求，或者无法保证会 终满足所有的用户需求。</p>
<h3 id="请说明需求分析人员在需求协商当中应该予以确保的三个原则">请说明需求分析人员在需求协商当中应该予以确保的三个原则。</h3>
<p>①明确冲突的因素，避免情绪上的冲突。②明确冲突的解决空间。③确定 佳解决方案。</p>
<h3 id="简述使用-dfd-描述系统过程模型是必须遵守哪些规则">简述使用 DFD 描述系统过程模型是必须遵守哪些规则。</h3>
<p>使用 DFD 描述系统过程模型是必须遵守一些规则，这些规则可以保证过程模型的正确性。这些规则有：  ①过程是对数据的处理，必须有输入，也必须有输出，而且输入数据集和输出数据集应该存在差异。 如果过程在没有输入的情况下产生了输出，称之为“奇迹”，即输出数据在没有任何可见来源的情况下就奇迹般产生了。 如果过程接收了数据输入却没有产生输出，称之为“黑洞”。它浪费了输入的数据资源，却没有做出应有的贡献。 过程是对数据的处理，这种处理是要产生附加价值的，即进行了数据的加工和变换，而不是简单的数据转移。 ②数据流是必须和过程产生关联的，它要么是过程的数据输入，要么是过程的数据输出。③DFD 当中所有的对象都应该有一个可以唯一标识自己的名称。过程使用动词，外部实体、数据流和数据存储使用名词。</p>
<h3 id="请说明-dfd-层次结构的建立的主要步骤">请说明 DFD 层次结构的建立的主要步骤</h3>
<p>DFD 层次结构的建立的主要步骤是： ①创建上下文图。  ②发现并建立 DFD 片断。 ③根据 DFD 片断组合产生 0 层图。  ④对 0 层图的过程进行功能分解，产生 N 层图。</p>
<h3 id="请说明-dfd-图质量评判的准则是什么">请说明 DFD 图质量评判的准则是什么？</h3>
<p>①遵守相应的规则，没有语法错误。 ②具有良好的语义，过程的功能设置要高内聚、低耦合。 ③保持数据一致性，过程的输人流要足以产生数据输出。同时过程的输出流是在充分利用输入数据的基础上产生的，不存在输入数据的浪费。 ④控制复杂度，不要一次在图中显示太多的信息。一般情况下，一个图中的过程数量好控制在 5～9（人脑的 佳信息处理量）个。而且图中的数据流数量越少越好，越简洁越好（接口 小化）。</p>
<h3 id="请说明如何快速有效地判定一个-dfd-图是否为原始-dfd-图">请说明如何快速有效地判定一个 DFD 图是否为原始 DFD 图？</h3>
<p>功能分解的过程需要持续进行，直至 终分解产生的子图都是原始 DFD 图，关键问题是如何快速有效地判定一个 DFD 图是否是原始 DFD 图。在分解产生的子图为下述情景之一时，可以判定其为原始 DFD 图，此时应该停止持续的功能分解活动： ①所有过程都已经被简化为一个选择、计算或者数据库操作。 ②所有数据存储都仅仅表示了一个单独的数据实体。 ③用户已经不关心比子图更为细节的内容，或者子图的描述已经详细的足以支持后续的开发活动。 ④每一个数据流都已经不需要进行更详细的切分，以展示对不同数据的不同处理方式。⑤每一个业务表单、事务、计算机的屏幕显示（Computer On-line Display）和业务报表都已经被表示为一个单独的数据流。  ⑥系统的每一个 低层菜单选项都能在子图中找到独立的过程。</p>
<h3 id="请说明如何进行-dfd-的验证">请说明如何进行 DFD 的验证？</h3>
<p>验证 DFD 的语法：要确保 DFD 中不会发生语法错误。验证 DFD 的结构：首先要验证 DFD 层次结构之间的一致性，包括分解的平衡性，也包括不同 DFD 之间元素实例使用的一致性，其次要验证 DFD 层次结构说明的完备性。验证 DFD 的语义：验证 DFD 的语义是为确保 DFD 所说明内容的正确性和准确性。</p>
<h3 id="简述-erd-的创建步骤">简述 ERD 的创建步骤。</h3>
<p>①从描述信息中辨识实体。从描述信息中寻找系统需要收集和存储的信息，然后将其建模为实体。  ②确定实体的标识符。为每个实体选择能够唯一标识实例且比较稳定的属性为标识符。 ③建立实体之间的关系。从描述信息中辨识实体之间存在的业务联系，描述为独立的关系元素。并判断各个关系的建立是否会产生新的关联实体或者影响已有的实体特性。 ④添加详细的描述信息。在得到一个初步的框架之后，进一步从描述中挖掘信息，为数据模型添加详细的描述信息，包括实体的详细属性和关系的基数。</p>
<h3 id="请说明为什么要编写需求规格说明文档">请说明为什么要编写需求规格说明文档？</h3>
<p>（1）编写需求规格说明文档的必要性：在一个复杂软件系统的开发中，编写需求规格说明文档是非常必要的。一方面，清晰、明确、结构化的文档可以将软件系统的需求信息和解决方案更好的传递给所有的开发者。 另一方面，文档可以拓展人们的知识记忆能力。（2）编写需求规格说明文档的他好处： ①需求规格说明文档可以成为各方人员之间有关软件系统的协议基准。②需求规格说明文档可以成为项目开发活动的一个重要依据。③在需求规格说明文档的编写过程中，可以尽早的发现和减少可能的需求错误，从而减少项目的返工，降低项目的工作量。④需求规格说明文档可以成为有效的智力资产。</p>
<h3 id="试比较编写需求规格说明文档所使用的三种语言">试比较编写需求规格说明文档所使用的三种语言。</h3>
<p>①非形式化语言，即自然语言。  ②半形式化语言，比自然语言具有更丰富的语义和更严格的语法同时又没有严格到完全基于数学方法的语言。 ③形式化语言，基于数学的语言，例如 VDM、Z 语言等。  ；；；自然语言具有复杂的规则和多样化的表达方式，所以它的表达能力 为强大。而且自然语言属于普通人的语言，每个人都熟知其规则、表达方式和特点，所以非常利于用户的理解。但同时自然语言也具有松散、模糊、歧义、凌乱等不好的特性。这使得它无法被机器所理解，它所描述的信息内容也无法准确地映射为机器行为。形式化语言是基于数学方法的语言，具有数学的表示法特性。使用形式化语言描述的信息内容是可以进行逻辑一致性推导和证明的，所以它能够保证信息的正确性。而且形式化的信息描述能够被机器所理解半形式化语言是介于自然语言和形式化语言之间的描述语言。一方面，半形式化语言具有严格的语法，定义方式比自然语言更加严格，这使得它可以避免自然语言模糊、松散、歧义、凌乱等不好的特性。另一方面，半形式化语言具有丰富的语义，使用规则比形式化语言更复杂和多样，这使得它具有比形式化方法更强的表达能力。但是，丰富的语义使得半形式化语言的语法无法严格到可以等价于数学方法的程度，所以它描述的信息还需要进行额外的处理才能够被机器所理解。</p>
<h3 id="简述评审的过程并说明何时可以结束评审">简述评审的过程并说明何时可以结束评审？</h3>
<p>（1） 规划阶段（Planning），作者和仲裁者共同制定审查计划，决定审查会议的次数，安排每次审查会议的时间、地点、参与人员、审查内容。 （2） 总体部署阶段（Overview），作者和仲裁者向所有参与审查会议的人员描述待审查材料的内容、审查的目标以及一些假设，并分发文档。 （3） 准备阶段（Preparation），审查人员各自独立执行检查任务。在检查的过程中，他们可能会被要求使用检查清单、场景等检查方法，记录下来检查中发现的问题，以准备开会讨论或者提交给收集人员。 （4） 审查会议阶段（Inspection Meeting），通过会议讨论，识别、确认和分类发现的错误。在审查会议结束时，还可以根据审查发现的问题严重程度来确定软件需求规格说明文档是可以在修正后接受，还是需要在修正后再次进行评审。 （5） 返工阶段（Rework），作者修改发现的缺陷。 （6） 跟踪阶段（Follow-up），仲裁者要确认所有发现的问题都得到了解决，所有的错误都得到了修正。仲裁者还要判断修正后的文档是否已满足审查的结束标准，如果不满足就需要再次进行评审。</p>
<p>若满足下列情况，审查工作可以结束。</p>
<p>①审查期间审查人员提出的所有问题都已解决。 ②文档中和相关的工作产品中的所有更改都已正确完成。 ③修订过的文档已经进行了拼写检查。 ④所有标识为 TBD(待确定)的问题都已经解决，或者已经对每个待确定问题的解决过程、计划解决的目标日期和由谁来解决等编制了文档。⑤文档已经在项目的配置管理系统中作了登记。</p>
<h3 id="简述需求管理的主要作用">简述需求管理的主要作用</h3>
<p>①增强了项目涉众对复杂产品特征在细节和相互依赖关系上的理解。②增进了项目涉众之间的交流。需求管理为项目涉众提供了一个共同的需求理解，从而有助于项目涉众之间的交流，减少了可能的误解和交流偏差。③减少了工作量的浪费，提高了生产力。④准确反映项目的状态，有助于项目决策。⑤改变项目文化，使得需求的作用得到重视和有效发挥。</p>
<h3 id="简述需求管理的重要任务">简述需求管理的重要任务</h3>
<p>①交流涉众的需要。  ②将需求应用、实施到解决方案。 ③驱动设计和实现工作。 ④控制变更。 ⑤将需求分配到子系统。 ⑥测试和验证 终产品。 ⑦控制迭代式开发中的变化。 ⑧辅助项目管理。</p>
<h3 id="简述如何进行需求变更控">简述如何进行需求变更控</h3>
<p>①问题发生了改变。软件被创建的目的在于解决用户的问题，可是随着时间的发展，形势可能会发生变化，导致用户的问题也发生了变化。②环境发生了改变。软件是通过与其周围环境进行交互的方式来解决用户的问题的。③需求基线存在缺陷。需求开发的理想结果当然是建立一个完全无缺陷的需求基线，但这是不可能达到的目标。因为需求工程的复杂性，需求开发得到的需求基线总是或多或少的会遗留下一些缺陷。④用户变动。⑤用户对软件的认识变化。⑥相关产品的出现。</p>
<h2 id="案例分析题">案例分析题</h2>
<h3 id="食物订货系统画dfd">食物订货系统画DFD</h3>
<p><img src="/Users/xiongshou/笔记/大学课程/image-20210505160726682.png" alt="image-20210505160726682" style="zoom:25%;" /></p>
<p><img src="/Users/xiongshou/笔记/大学课程/image-20210505160738057.png" alt="image-20210505160738057" style="zoom:25%;" /></p>
<p><img src="/Users/xiongshou/笔记/大学课程/image-20210505160816813.png" alt="image-20210505160816813" style="zoom: 25%;" /></p>
<h3 id="投资经理哪里错了">投资经理哪里错了</h3>
<p>（1）她没有仔细认真地分析问题：  （2）她没有及时跟相关人员交流信息，没能把握住有价值信息：  （3）她没能及时跟公司员工交流，引用过时的文件结构；  （4）她没有仔细研究分析新引进的系统的性能需求是否满足：  （5）她没有仔细研究新引进的系统的功能需求是否满足；  （6）她没有仔细研究引进的系统的质量属性，对外接口是否满足。</p>
<h3 id="新的直接销售和财务处理系统以帮助解决这些问题">新的直接销售和财务处理系统以帮助解决这些问题。</h3>
<p>解答：业务需求如 BR。   BRl：实现客户账单和收据的有效追踪；BR2：实现产品特价时的利润和相关销售情况检查； BR3：实现一个客户数据库。</p>
<h3 id="省略工作陈述的风险是什么你将如何说服主管">省略工作陈述的风险是什么?你将如何说服主管?</h3>
<p>省略工作陈述的风险是不能明确项目的前景和范围。如果省略了工作陈述的话，你就不能和用户进行很好的沟通与交流，这样，项目的问题也就不能明确，即，开发人员无法与涉众对问题达成共识；无法明确问题，也就无法发现正确的业务需求，无法定义良好的解决方案及系统特性，继而无法明确项目的前景和范围，这样就会造成项目的不稳定甚至失败！</p>
<h3 id="银行遇到了什么问题设计解决方案">银行遇到了什么问题？设计解决方案</h3>
<p>解答：她现在遇到的问题有：  （1）不能有效地从信息部门获得工资和个人数据：  （2）雇员数据太过分散，而且不能及时正确地更新；（3）计算复杂；  （4）雇员信息不能得到及时有效正确的更新；  （5）计算中可变条件的复杂性。  新的软件应该达到的业务目标有：  （1）减少从信息部门获得工资和个人数据的时间；   度量标准（Scale）：一次从信息部门获得工资和个人数据的时间：   计量方法（Meter）：检查信息部门数据库日志；    理想标准：减少 50％；一般标准：减少 30％； 低标准：减少 20％：  （2）集中雇员数据，并且正确更新；  （3）降低计算的复杂性；  （4）及时有效正确地更新雇员信息：（5）降低计算中可变条件的复杂性。  软件的高层解决方案和系统特性：</p>
<p>（1）高层解决方案：  ①由软件从信息部门的数据库中检索出工资和个人数据，减少所需信息获取的时间；  ②由软件来分析雇员数据的各种特征，及早识别出数据所在位置；或由软件集   中处理雇员数据，及早识别出不准确的或没有及时更新的数据，提交人工处   理或自行更新；  ③由软件来处理投资和退休假定的计算的复杂过程；  ④由软件来分析个人数据的准确性，及早识别出不准确的个人信息，提交人工   处理；或定时更新数，提高数据的准确性；  ⑤由软件来处理计算中可变条件的复杂性，降低出错率。</p>
<p>（2）系统特性：  ①根据信息部门提供的数据库查询工资和个人数据；②根据原始数据重新整理数据并更新；   ③提交查询信息；  ④创建投资和退休假定的计算过程；  ⑤通过公司的内联网访问系统，根据个人情况更新信息；   ⑥模拟计算中可变条件的变化；   ⑦提供 灵活的福利方案。</p>
<p>重要的约束有：<img src="/Users/xiongshou/%E7%AC%94%E8%AE%B0/%E5%A4%A7%E5%AD%A6%E8%AF%BE%E7%A8%8B/image-20210505161737320.png" alt="image-20210505161737320"></p>
<h3 id="为下面的每一个涉众描述选项试举一例">为下面的每一个涉众描述选项试举一例，</h3>
<p>说明对这些选项进行描述的必要性和忽略这些选项描述可能造成的风险：个人特征、工作特征、地理和社会特征、关注点和兴趣、目标期望、被影响程度、力量程度。</p>
<p>解答：  （1） 涉众个人特征和工作特征的描述可以帮助更好的确定功能需求：  （2） 涉众的输赢条件和受影响程度可以帮助解决涉众之间的需求冲突；  (3) 涉众的重要性、影响力、关注点和兴趣取向可以用来发现项目的潜在风险：</p>
<p><img src="/Users/xiongshou/%E7%AC%94%E8%AE%B0/%E5%A4%A7%E5%AD%A6%E8%AF%BE%E7%A8%8B/image-20210505161841757.png" alt="image-20210505161841757"></p>
<h3 id="怎么选择面谈对象">怎么选择面谈对象</h3>
<p>（1）  选择面谈对象的时候采用随机抽样，从 5 个阶层以及生产、会计、营销、系统、物流各选择 2-3 名客户参与面谈。高层管理均要参加面谈。因为在选择面谈的时候要力争均衡的收集用户的需求，因此要涉及各方面受系统影响的人。  采样的规则：控制人数（4～8）。  （2）  高层管理的人 先面谈。然后是系统层。其余层的面谈对象根据实际情况可以先  后安排面谈的时间，不一定要分先后顺序。  跟高层管理人员进行面谈，采用漏斗结构，因为各个高层管理人员对各自管理  的层次从大体上有准确的把握，有助于开发人员首先获取对项目的广度方面的认识，也能获取一些较为详细的信息。跟具体部门人员进行面谈，采用菱形(必要时，金字塔)结构，因为这种面谈较为具体，问题常为封闭式问题，这样有助于分析人员获得深度认识。</p>
<p>基本规则：（1）先业务需求，后用户需求，所以先领导后普通（2）开始漏斗，领导漏斗。  普通用户菱形，要时金字塔面谈结构及其特点。</p>
<h2 id="数据列表登记表格">数据列表、登记表格</h2>
<p>解答：  （1）   描述发货人、收货人和承运公司的伙伴关系的表   发货及收货的时间表  、货物的中转表   拖拉机和仓库的使用情况表</p>
<p>（2） 将这 15 年公司的情况用图表表达出来，形成对 15 年以来公司状况的认识，获取  生产情况的时候将大致相同的年份列出来，采样时候只需要在大致相同的年份中抽取一份作为样本。</p>
<h2 id="回答问题">回答问题</h2>
<p>（1） 你认为作为一个销售经理，是不是应该拥有一台计算机?（诱导性问题）  （2） 我是不是还忽略了什么?（上下文无关问题）</p>
<p>（3） ①你在销售计算中 常用的信息资源是什么（双筒问题） ②使用频度如何</p>
<p>（4） 你认为把一些月度销售商品放到 web 上，然后做趋势分析会是一种改进吗（诱导性问题）</p>
<p>（5） 还有比目前方法更好的销售方案吗（上下文无关问题）</p>
<h2 id="安排面谈">安排面谈</h2>
<p>解答：</p>
<p>（1）  参考面谈过程的准备阶段： 打电话或者 E-mail 给 Harry，因为要进行深入面谈，可以先将一些问题通过 E-mail 发给他。</p>
<p>（2）  采用菱形面谈结构，因为目的是要更新自动化会计功能．也可以考虑使用漏斗结  构。</p>
<p>（3）  应当面谈，因为下属和领导应该具有不唰的目标，而这些目标是领导不能提供的。</p>
<p>考察点：涉众的分类</p>
<p>采用漏斗型。以一般的开放式的问题开始．有助于分析人员取得总体认识。然后再逐步就某些问题展开深入面谈。</p>
<p>（4）  参考规则： ①面谈获取信息的类型  ②面谈的优点  面谈是复杂的过程。可以实现很多的目标，只有依靠人的灵活和主观能动性才能使面谈达到 优效果</p>
<h2 id="面谈遇见的问题">面谈遇见的问题</h2>
<p>（1）面谈时间稍长，而且控制不佳。遗漏了关于“ 新建议的系统的观点”  （2）有关公司的所有历史  （3）参考面谈过程一一面谈主体阶段：  ①控制面谈的过程。面谈开始的时候可以通过例如谈公司历史来酝酿一下交流的气氛，但是不能偏离主题。如果长时间的谈论不相关的信息的时候。需求分析人员就可以委婉的提醒面谈对象。并重新切回正题。  ②注意保持面谈的主题。针对每个面谈的目标，要在面谈的过程中安排合适的提示。逐一引导面谈对象对各个主题的叙述。  ③总结面谈的要点，注意此次面谈过程的成功和失误，明确下次的目标。以便为下次面谈做充分的准备</p>
<h2 id="面谈需求改变">面谈需求改变</h2>
<p>（1）①根据需要确定原型类型 ②进行原型开发 ③获得用户反馈 ④定义所得需求  （2） 答案要以“隐含知识”和“用户表述时的主观加工”为主题  （3） 原型化方法利用直观化的界面来 快程发的得到用户的反馈，通过用户的反馈来获知其实际的需求。</p>
<h2 id="放弃sdlc">放弃SDLC</h2>
<p>（1）  主要原因：原型仪仅是开发当中使用的一种手段，它利用得当可以加速开发的进程，但不能代替软件开发中的所有工作。</p>
<p>（2）  情形见下表，尤其是其中红字部分。</p>
<table>
<thead>
<tr>
<th></th>
<th>废弃型</th>
<th>演化型</th>
</tr>
</thead>
<tbody>
<tr>
<td>水平型</td>
<td>阐明并细化用例和功能性需求   识别遗漏功能研究用户界面方法</td>
<td>实现核心用例    根据优先级实现其他用例使得系统适应快速变化的需要</td>
</tr>
<tr>
<td>垂直型</td>
<td>演示系统可行性</td>
<td>实现并扩充核心功能实现并扩充核心算法测试并调整性能</td>
</tr>
</tbody>
</table>

    </div>

    <div class="post-copyright">
  <p class="copyright-item">
    <span class="item-title">Author</span>
    <span class="item-content">olOwOlo</span>
  </p>
  <p class="copyright-item">
    <span class="item-title">LastMod</span>
    <span class="item-content">
        2021-06-01
        
    </span>
  </p>
  
  
</div>
<footer class="post-footer">
      <div class="post-tags">
          <a href="/tags/%E5%A4%A7%E5%AD%A6%E8%AF%BE%E7%A8%8B/">大学课程</a>
          </div>
      <nav class="post-nav">
        <a class="prev" href="/post/%E8%AE%BE%E8%AE%A1%E5%AF%86%E7%A0%81/">
            <i class="iconfont icon-left"></i>
            <span class="prev-text nav-default">设计密码</span>
            <span class="prev-text nav-mobile">Prev</span>
          </a>
        <a class="next" href="/post/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/">
            <span class="next-text nav-default">操作系统</span>
            <span class="next-text nav-mobile">Next</span>
            <i class="iconfont icon-right"></i>
          </a>
      </nav>
    </footer>
  </article>
        </div>
        

  

  

      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="social-links">
      <a href="mailto:your@email.com" class="iconfont icon-email" title="email"></a>
      <a href="http://localhost:1313" class="iconfont icon-stack-overflow" title="stack-overflow"></a>
      <a href="http://localhost:1313" class="iconfont icon-twitter" title="twitter"></a>
      <a href="http://localhost:1313" class="iconfont icon-facebook" title="facebook"></a>
      <a href="http://localhost:1313" class="iconfont icon-linkedin" title="linkedin"></a>
      <a href="http://localhost:1313" class="iconfont icon-google" title="google"></a>
      <a href="http://localhost:1313" class="iconfont icon-github" title="github"></a>
      <a href="http://localhost:1313" class="iconfont icon-weibo" title="weibo"></a>
      <a href="http://localhost:1313" class="iconfont icon-zhihu" title="zhihu"></a>
      <a href="http://localhost:1313" class="iconfont icon-douban" title="douban"></a>
      <a href="http://localhost:1313" class="iconfont icon-pocket" title="pocket"></a>
      <a href="http://localhost:1313" class="iconfont icon-tumblr" title="tumblr"></a>
      <a href="http://localhost:1313" class="iconfont icon-instagram" title="instagram"></a>
      <a href="http://localhost:1313" class="iconfont icon-gitlab" title="gitlab"></a>
      <a href="http://localhost:1313" class="iconfont icon-bilibili" title="bilibili"></a>
  <a href="https://xiongshou.github.io/index.xml" type="application/rss+xml" class="iconfont icon-rss" title="rss"></a>
</div>

<div class="copyright">
  <span class="power-by">
    Powered by <a class="hexo-link" href="https://gohugo.io">Hugo</a>
  </span>
  <span class="division">|</span>
  <span class="theme-info">
    Theme - 
    <a class="theme-link" href="https://github.com/olOwOlo/hugo-theme-even">Even</a>
  </span>

  

  <span class="copyright-year">
    &copy; 
    2017 - 
    2021<span class="heart"><i class="iconfont icon-heart"></i></span><span>olOwOlo</span>
  </span>
</div>

    </footer>

    <div class="back-to-top" id="back-to-top">
      <i class="iconfont icon-up"></i>
    </div>
  </div>
  
  <script src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/slideout@1.0.1/dist/slideout.min.js" integrity="sha256-t+zJ/g8/KXIJMjSVQdnibt4dlaDxc9zXr/9oNPeWqdg=" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.1.20/dist/jquery.fancybox.min.js" integrity="sha256-XVLffZaxoWfGUEbdzuLi7pwaUJv1cecsQJQqGLe7axY=" crossorigin="anonymous"></script>



<script type="text/javascript" src="/js/main.min.c99b103c33d1539acf3025e1913697534542c4a5aa5af0ccc20475ed2863603b.js"></script>








</body>
</html>
